package pucpr.pibic.casos;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.poi.ss.usermodel.Row;

import pucpr.pibic.funcoes.ManipulaArquivo;

public class Run {

	public static void main(String[] args) {        
		ManipulaArquivo manArq = new ManipulaArquivo();
		DistanciaEuclidiana de = new DistanciaEuclidiana();
		//Nome do arquivo da base de casos.
		String arquivo = "2008_tratamento.xlsx";
		ArrayList<Row> conteudoArquivo = manArq.lerArquivoExcel(arquivo);
		List<Caso2008> listaCasosBase = de.carregarCasos2008(conteudoArquivo);
		
		Caso2008 novoCaso = new Caso2008();
		
		novoCaso.setId(9999);
		novoCaso.setNumeroCaso(18191);
		novoCaso.setDataEncerramento(new Date(2014, 05, 07));
		novoCaso.setClassificacao("G/M");
		novoCaso.setTempoAnalisePrevisto(5);
		novoCaso.setTempoAnaliseRealizado(2);
		novoCaso.setDesvioAnalise((novoCaso.getTempoAnaliseRealizado() - novoCaso.getTempoAnalisePrevisto()) / novoCaso.getTempoAnaliseRealizado());
		novoCaso.setTempoDesenvolvimentoPrevisto(3);
		novoCaso.setTempoDesenvolvimentoRealizado(2);
		novoCaso.setDesvioDesenvolvimento((novoCaso.getTempoDesenvolvimentoRealizado() - novoCaso.getTempoDesenvolvimentoPrevisto()) / novoCaso.getTempoDesenvolvimentoRealizado());
		novoCaso.setTempoTestePrevisto(1);
		novoCaso.setTempoTesteRealizado(1.5);
		novoCaso.setDesvioTeste((novoCaso.getTempoTesteRealizado() - novoCaso.getTempoTestePrevisto()) / novoCaso.getTempoTestePrevisto());
		novoCaso.setVersao("TESTE");
		novoCaso.setClassificacaoReicidencia("Desenvolvimento");
		novoCaso.setCasoReicidente("123");
		
		Caso2008 casoSimilar = de.retornarCasoMaisSimilar(novoCaso, listaCasosBase);
		if(casoSimilar != null)
			System.out.println("Dados do caso mais similar: \n" + casoSimilar.toString());
		
//		Casos2010 novoCaso = new Casos2010(50, 10000, 1000, "10/10/2010", "teste", "teste classificacao", "desenv", "teste grrupo executor", "teste executor", "teste prioridade", 123, "teste tipo tarefa", "PG", "teste analise critica", "10/10/2010", 10.0, 10.0, "teste analise desenvolvimento", "teste analise qualidade", "teste analise Neg");
//
//		Casos2010 casoMaisSimilar = de.retornarCasoMaisSimilar(novoCaso);
//		if(casoMaisSimilar != null){
//			System.out.println("Dados do caso mais similar: \n" + casoMaisSimilar.toString());
//		}
	}
}

